<?php

declare(strict_types=1);

namespace JsonDb\JsonDb;

/**
 * @package JsonDb
 * @author  易航
 * @version dev
 * @link    https://gitee.com/yh-it/json-db
 * 易航博客
 * http://blog.bri6.cn
 */
class Db
{
	private static array $config = [];
	private static array $instances = [];

	public static function configure(array $config): void
	{
		self::$config = array_merge([
			'prefix' => '',
			'path' => null
		], $config);
	}

	/**
	 * 指定当前操作的数据表(不带前缀)
	 * @access public
	 * @param string $table 表名
	 * @return JsonDb
	 */
	public static function table(string $name): JsonDb
	{
		if (!isset(self::$instances[$name])) {
			self::$instances[$name] = (new JsonDb(self::$config))->table($name);
		}
		return self::$instances[$name];
	}

	/**
	 * 指定当前操作的数据表
	 * @access public
	 * @param string $table 表名
	 * @return JsonDb
	 */
	public static function name(string $name)
	{
		$tableName = self::$config['prefix'] . $name;
		return self::table($tableName);
	}
}
